package mop.model.task;

import java.sql.Timestamp;

/**
 * An interface to a Schedule object
 * @author MOP Team 7
 */
public interface ScheduleInterface {
	/**
	 * Deadline inspector
	 * @return	deadline
	 */
	public Timestamp getDeadline();
	
	/**
	 * Start inspector
	 * @return start
	 */
	public Timestamp getStart();
	
	/**
	 * Duration inspector
	 * @return	duration
	 */
	public Timestamp getDuration();
	
	/**
	 * Check whether this schedule is valid (according to Business rule 1)
	 * @return	
	 *  true if the passed deadline is valid according to business rule 1
	 *  false if deadline is invalid
	 */
	public boolean hasValidDeadline();
	
	/**
	 * Get the earliest possible end time for this schedule
	 * @return earliest possible end time
	 */
	public Timestamp getEarliestEndTime();
}
